package warpper;

import javax.swing.plaf.SpinnerUI;

/**
 * 包装类：
 * java为8个基本类型定义了对应的8个包装类
 * 目的是让基本类型可以以“对象”的形式存在，来方便的参与到面向对象的开发
 * */
public class IntegerDemo {
    public static void main(String[] args) {
        int a =123;
     //   Integer i1 = new Integer(a);
      //  Integer i2 = new Integer(a);
        Integer i1 =Integer.valueOf(a);
        Integer i2 =Integer.valueOf(a);
        //Inter的valueof总是重用1字节之内（-128-127）的整数对象，
        // 双等号以及equals都为true


        System.out.println(i1);//123
        System.out.println(i2);//123

        System.out.println(i1==i2);//（new）false 双等号比的是内存地址
        System.out.println(i1.equals(i2));//true 系统默认重写，比的是值
        System.out.println("-----------------------------");

        //Double的valueof没有做任何特殊处理，内部就是（new）双等号就是new
        double d = 123.123;
        Double d1=  Double.valueOf(d);
        Double d2 = Double.valueOf(d);
        System.out.println(d1==d2);//false
        System.out.println(d1.equals(d2));//true

        System.out.println("-----------------------------");
        //数字类型的包装类可以将其转换为任意数字的基本类型
        int i = i1.intValue();
        System.out.println(i);//12  3
        byte b = i1.byteValue();//大类型转换为小类型可能存在溢出
        System.out.println(b);//123
        double dou =i1.doubleValue();
        System.out.println(dou);//123.0

    }


}

